package packets;

import java.util.ArrayList;
import java.util.List;
import org.jnetpcap.packet.JHeader;

/**
 * Diese Klasse repräsentiert eine Network LSA und enthält Methoden, die entsprechenden Felder zurück geben.
 * @author pascal
 *
 */
public class NetworkLSA extends LSA{

	private List<Long> attachedRouters;
	
	public List<Long> getAttachedRouters(){
		return attachedRouters;
	}
	
	
	public NetworkLSA(JHeader peer, int length, int offset) {
		attachedRouters = new ArrayList<Long>();
		this.peer(peer, offset, length);
		this.decode();
	}
	
	public long networkMaks(){
		return getInt(20);
	}
	
	/**
	 * Dekodiert den Speicherbereich, der dieser LSA zugewiesen wurde und findet so die enthaltenen Daten über die "attatched Routers". 
	 */
	@Override
	public void decode() {
		int offset = 24;
		int numberOfAttachedRouters = (this.size() - offset) / 4;
		
		for(int i=0; i < numberOfAttachedRouters; i++){
			long attached = getUInt(offset + (i*4));
			Long attachedRouter = new Long(attached);
			
			attachedRouters.add(attachedRouter);
		}
				
	}

}
